package com.linkgie.galaxyframework.templating.model.java;

import java.util.List;

public class JavaMethod {

	private String name;

	private Visibility visibility;

	private JavaType returnType;

	private List<Argument> arguments;

	private List<AnnotationStatement> annotations;

	private Object bodyStatement;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Visibility getVisibility() {
		return visibility;
	}

	public void setVisibility(Visibility visibility) {
		this.visibility = visibility;
	}

	public JavaType getReturnType() {
		return returnType;
	}

	public void setReturnType(JavaType returnType) {
		this.returnType = returnType;
	}

	public List<Argument> getArguments() {
		return arguments;
	}

	public void setArguments(List<Argument> arguments) {
		this.arguments = arguments;
	}

	public List<AnnotationStatement> getAnnotations() {
		return annotations;
	}

	public void setAnnotations(List<AnnotationStatement> annotations) {
		this.annotations = annotations;
	}

	public Object getBodyStatement() {
		return bodyStatement;
	}

	public void setBodyStatement(Object bodyStatement) {
		this.bodyStatement = bodyStatement;
	}
	
	
	
	//---------------------------------------------------

	public static class Argument extends VariableValue {

		private AnnotationStatement annotation;

		private Boolean array;

		private JavaType genericType;

		public AnnotationStatement getAnnotation() {
			return annotation;
		}

		public void setAnnotation(AnnotationStatement annotation) {
			this.annotation = annotation;
		}

		public Boolean getArray() {
			return array;
		}

		public void setArray(Boolean array) {
			this.array = array;
		}

		public JavaType getGenericType() {
			return genericType;
		}

		public void setGenericType(JavaType genericType) {
			this.genericType = genericType;
		}

	}

}
